package c04流程控制和数组;

/**
 * 总结：定义多维数组时，最左边的维一定要指定维数，其他维数依次指定维数，中间不能空出某维（如下@sss1）！
 * Java的多维数组都是用一维数组实现的，所以可以说Java不存在多维数组。
 *
 * @author 炜sama
 */
public class 数组 {
	public static void main(String[] args) {

		int[] is = new int[5];//推荐写法！
		int is2[] = new int[5];
		//下面这两种定义+初始化的格式都可以，推荐使用第一种，简便！
		int[] is3 = {0, 1, 2, 3, 4};
		int[] is32 = new int[]{0, 1, 2, 3, 4};//后面的[]中不能填数字！
		is = is3;
//		is2={0,1,2,3,4};//错误！！
		is2 = new int[]{0, 1, 2, 3, 4};//正确！
		int len = 5;
		int is4[] = new int[len];//与c++不同，len可以是变量！

		int[][] iss = new int[5][];//可以！将二维数组当一维数组来初始化
//		int[][] iss2=new int[][];//错误！
//		int[][] iss3=new int[][5];//错误！
		int[][] iss4 = new int[5][2];//正确！
		iss[0] = new int[2];//正确！
		iss[1] = new int[3];//正确！长度可以不一样。
		iss4[0] = new int[2];//正确！
		iss4[1] = new int[3];//编译和运行时都没出错
		iss4[1][2] = 10;//编译和运行时都没出错
		System.err.println(iss4[1].length);//3
		System.err.println(iss4[0].length);//2

		int[][][] isss = new int[5][2][];
		int[][][] isss2 = new int[5][][];//第一维不能为空，后面的可以！
//		int[][][] isss3=new int[5][][2];//@sss1错误！不能两边不空中间空！
	}

}
